home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2013 October / SAN CD 10-2013 CD-ROM 101.iso / pc / issueMedia / Software / gp1v / Dsp6SEsetup.exe / Schema / dsp60 / dsplan.xsd < prev    next >
Encoding:
Extensible Markup Language  |  2012-12-10  |  25.2 KB  |  692 lines

  1. <?xml version="1.0" encoding="ISO-8859-1"?>
  2. <xsd:schema targetNamespace="http://knightware.biz/dsp/schema"
  3.     xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
  4.     xmlns:dsp="http://knightware.biz/dsp/schema" 
  5.     elementFormDefault="qualified" 
  6.     attributeFormDefault="unqualified" 
  7.     version="6.0">
  8.  
  9.     <xsd:include schemaLocation="dsptypes.xsd"/>
  10.     <xsd:include schemaLocation="stotypes.xsd"/>
  11.  
  12.     <xsd:annotation>
  13.         <xsd:documentation xml:lang="en">
  14.             Deep-Sky Planner observation plan document schema.
  15.             Copyright © 2012 Knightware, LLC. All rights reserved.
  16.         </xsd:documentation>
  17.     </xsd:annotation>
  18.  
  19.     <!-- Plan metadata types -->
  20.     <xsd:simpleType name="planNameType">
  21.         <xsd:restriction base="xsd:string">
  22.             <xsd:maxLength value="50"/>
  23.         </xsd:restriction>
  24.     </xsd:simpleType>
  25.     <xsd:simpleType name="planAuthorType">
  26.         <xsd:restriction base="xsd:string">
  27.             <xsd:maxLength value="50"/>
  28.         </xsd:restriction>
  29.     </xsd:simpleType>
  30.     <xsd:simpleType name="planCategoryType">
  31.         <xsd:restriction base="xsd:string">
  32.             <xsd:maxLength value="30"/>
  33.         </xsd:restriction>
  34.     </xsd:simpleType>
  35.     <xsd:simpleType name="planDifficultyType">
  36.         <xsd:restriction base="xsd:string">
  37.             <xsd:maxLength value="30"/>
  38.         </xsd:restriction>
  39.     </xsd:simpleType>
  40.     <xsd:simpleType name="planDescriptionType">
  41.         <xsd:restriction base="xsd:string">
  42.             <xsd:maxLength value="255"/>
  43.         </xsd:restriction>
  44.     </xsd:simpleType>
  45.  
  46.     <xsd:complexType name="planMetaDataType">
  47.         <xsd:sequence>
  48.             <xsd:element name="planName" type="dsp:planNameType"/>
  49.             <xsd:element name="planAuthor" type="dsp:planAuthorType"/>
  50.             <xsd:element name="planCategory" type="dsp:planCategoryType"/>
  51.             <xsd:element name="planDifficulty" type="dsp:planDifficultyType"/>
  52.             <xsd:element name="planDescription" type="dsp:planDescriptionType"/>
  53.             <xsd:element name="planCreateDate" type="xsd:date"/>
  54.             <xsd:element name="planModifyDate" type="xsd:date"/>
  55.         </xsd:sequence>        
  56.     </xsd:complexType>
  57.  
  58.     <!-- Plan localization types -->
  59.  
  60.     <!-- ephemDateTimeType enumerates relative times on a date, or a specific time on a date -->
  61.     <xsd:simpleType name="ephemDateTimeEnum">
  62.         <xsd:restriction base="xsd:string">
  63.             <xsd:enumeration value="sunset"/>
  64.             <xsd:enumeration value="endTwilight"/>
  65.             <xsd:enumeration value="beginTwilight"/>
  66.             <xsd:enumeration value="sunrise"/>
  67.             <xsd:enumeration value="at"/>
  68.         </xsd:restriction>
  69.     </xsd:simpleType>
  70.  
  71.     <xsd:complexType name="ephemDateTimeType">
  72.         <xsd:simpleContent>
  73.             <xsd:extension base="xsd:dateTime">
  74.                 <xsd:attribute name="when" type="dsp:ephemDateTimeEnum" use="required" />
  75.             </xsd:extension>
  76.         </xsd:simpleContent>
  77.     </xsd:complexType>
  78.  
  79.     <!-- ephemNow is the special case of declaring a relative date & time (now) -->
  80.     <xsd:complexType name="ephemNowType"/>
  81.  
  82.     <xsd:complexType name="planLocalizationType">
  83.         <xsd:sequence>
  84.             <!-- Location for ephemeral calculations -->
  85.             <xsd:element name="sitename" type="xsd:string"/>
  86.             <!-- Begin date/time for ephemeral calculations -->
  87.             <xsd:choice>
  88.                 <xsd:element name="beginNow" type="dsp:ephemNowType"/>
  89.                 <xsd:element name="begin" type="dsp:ephemDateTimeType"/>
  90.             </xsd:choice>
  91.             <xsd:element name="showApparentCoords" type="xsd:boolean" />
  92.             <xsd:element name="useEquipment" type="xsd:boolean" />
  93.             <xsd:element name="useConditions" type="xsd:boolean" />
  94.             <xsd:element name="fetchDSS" type="xsd:boolean" />
  95.         </xsd:sequence>
  96.     </xsd:complexType>
  97.  
  98.     <!-- Plan filter types -->
  99.  
  100.     <!-- Whether Observed, i.e. present in the observing log -->
  101.     <xsd:complexType name="observedFilterType">
  102.         <xsd:simpleContent>
  103.             <xsd:extension base="xsd:boolean" />
  104.         </xsd:simpleContent>
  105.     </xsd:complexType>
  106.     <!-- Magnitude range -->
  107.     <xsd:complexType name="magnitudeFilterType">
  108.         <xsd:sequence>
  109.             <xsd:element name="minmag" type="xsd:double"/>
  110.             <xsd:element name="maxmag" type="xsd:double"/>
  111.         </xsd:sequence>
  112.         <xsd:attribute name="includemissing" use="required">
  113.             <xsd:simpleType>
  114.                 <xsd:restriction base="xsd:string">
  115.                     <xsd:enumeration value="no"/>
  116.                     <xsd:enumeration value="yes"/>
  117.                 </xsd:restriction>
  118.             </xsd:simpleType>
  119.         </xsd:attribute>
  120.     </xsd:complexType>
  121.     <!-- Size range -->
  122.     <xsd:complexType name="sizeFilterType">
  123.         <xsd:sequence>
  124.               <xsd:element name="minsize" type="dsp:angleType" />
  125.               <xsd:element name="maxsize" type="dsp:angleType" />
  126.         </xsd:sequence>
  127.           <xsd:attribute name="includemissing" use="required">
  128.             <xsd:simpleType>
  129.                   <xsd:restriction base="xsd:string">
  130.                     <xsd:enumeration value="no" />
  131.                     <xsd:enumeration value="yes" />
  132.                   </xsd:restriction>
  133.             </xsd:simpleType>
  134.           </xsd:attribute>
  135.     </xsd:complexType>
  136.     <!-- Constellations -->
  137.     <xsd:complexType name="constellationFilterType">
  138.         <xsd:sequence>
  139.             <xsd:element name="constellation" minOccurs="0" maxOccurs="88" type="xsd:string"/>
  140.         </xsd:sequence>
  141.     </xsd:complexType>
  142.     <!-- Object types -->
  143.     <xsd:complexType name="objectTypeFilterType">
  144.         <xsd:sequence>
  145.             <xsd:element name="objectType" minOccurs="0" maxOccurs="19" type="xsd:string"/>
  146.         </xsd:sequence>
  147.     </xsd:complexType>
  148.     <!-- Atlas -->
  149.     <xsd:complexType name="atlasFilterType">
  150.         <xsd:sequence>
  151.             <xsd:element name="atlasName" type="xsd:string"/>
  152.             <xsd:element name="chartNumber" type="xsd:positiveInteger"/>
  153.         </xsd:sequence>
  154.     </xsd:complexType>
  155.     <!-- Horizontal Position Filter -->
  156.     <!-- Filter by range. Azimuth can traverse 0 degrees. -->
  157.     <xsd:complexType name="horizonRangeType">
  158.         <xsd:sequence>
  159.             <xsd:element name="altitude">
  160.                 <xsd:complexType>
  161.                     <xsd:sequence>
  162.                         <xsd:element name="minalt" type="dsp:angleType"/>
  163.                         <xsd:element name="maxalt" type="dsp:angleType"/>
  164.                     </xsd:sequence>
  165.                 </xsd:complexType>
  166.             </xsd:element>
  167.             <xsd:element name="azimuth">
  168.                 <xsd:complexType>
  169.                     <xsd:sequence>
  170.                         <xsd:element name="minaz" type="dsp:angleType"/>
  171.                         <xsd:element name="maxaz" type="dsp:angleType"/>
  172.                     </xsd:sequence>
  173.                 </xsd:complexType>
  174.             </xsd:element>
  175.         </xsd:sequence>
  176.     </xsd:complexType>
  177.     <!-- Filter by local horizon model associated with the plan location, if any. **Not yet supported. -->
  178.     <xsd:complexType name="horizonLocalType"/>
  179.     <xsd:complexType name="horizonFilterType">
  180.         <xsd:sequence>
  181.             <xsd:choice>
  182.                 <xsd:element name="horizonRange" type="dsp:horizonRangeType"/>
  183.                 <xsd:element name="horizonLocal" type="dsp:horizonLocalType"/>
  184.             </xsd:choice>
  185.         </xsd:sequence>
  186.     </xsd:complexType>
  187.  
  188.     <!-- Double star separation filter (units are arcseconds) -->
  189.     <xsd:complexType name="separationFilterType">
  190.         <xsd:sequence>
  191.             <xsd:element name="minsep" type="xsd:double"/>
  192.             <xsd:element name="maxsep" type="xsd:double"/>
  193.         </xsd:sequence>
  194.         <xsd:attribute name="includemissing" use="required">
  195.             <xsd:simpleType>
  196.                 <xsd:restriction base="xsd:string">
  197.                     <xsd:enumeration value="no"/>
  198.                     <xsd:enumeration value="yes"/>
  199.                 </xsd:restriction>
  200.             </xsd:simpleType>
  201.         </xsd:attribute>
  202.     </xsd:complexType>
  203.     <!-- Collection of filters for plan -->
  204.     <xsd:complexType name="planFiltersType">
  205.         <xsd:sequence>
  206.             <xsd:element name="observedFilter" type="dsp:observedFilterType" minOccurs="0"/>
  207.             <xsd:element name="magnitudeFilter" type="dsp:magnitudeFilterType" minOccurs="0"/>
  208.             <xsd:element name="sizeFilter" type="dsp:sizeFilterType" minOccurs="0"/>
  209.             <xsd:element name="constellationFilter" type="dsp:constellationFilterType" minOccurs="0"/>
  210.             <xsd:element name="objectTypeFilter" type="dsp:objectTypeFilterType" minOccurs="0"/>
  211.             <xsd:element name="atlasFilter" type="dsp:atlasFilterType" minOccurs="0"/>
  212.             <xsd:element name="horizonFilter" type="dsp:horizonFilterType" minOccurs="0"/>
  213.         </xsd:sequence>
  214.     </xsd:complexType>
  215.  
  216.     <!-- Plan Alerts -->
  217.  
  218.     <!-- Horizon Alert -->
  219.     <xsd:complexType name="horizonAlertType">
  220.         <xsd:sequence>
  221.             <xsd:element name="altitude" type="dsp:angleType" minOccurs="0"/>
  222.             <xsd:element name="azimuth" type="dsp:angleType" minOccurs="0"/>
  223.             <!-- Alert time (in minutes) for crossing into the included region or crossing out of the included region. -->
  224.             <xsd:element name="alertMinutes" type="xsd:positiveInteger"/>
  225.         </xsd:sequence>
  226.     </xsd:complexType>
  227.     <!-- Collection of alerts for plan -->
  228.     <xsd:complexType name="planAlertsType">
  229.         <xsd:sequence>
  230.             <xsd:element name="horizonAlert" type="dsp:horizonAlertType" minOccurs="0"/>
  231.         </xsd:sequence>
  232.     </xsd:complexType>
  233.  
  234.     <!-- DSS image descriptor. -->
  235.     <xsd:complexType name="dssDescriptorType">
  236.         <xsd:sequence>
  237.             <xsd:element name="dss_ServerUrl" type="xsd:string" />
  238.             <xsd:element name="dss_SurveyValue" type="xsd:string" />
  239.             <xsd:element name="dss_Size">
  240.                 <xsd:simpleType>
  241.                     <xsd:restriction base="xsd:integer">
  242.                         <xsd:minInclusive value="1"/>
  243.                         <xsd:maxInclusive value="60"/>
  244.                     </xsd:restriction>
  245.                 </xsd:simpleType>
  246.             </xsd:element>
  247.         </xsd:sequence>
  248.         <xsd:attribute name="id" type="xsd:ID" use="required"/>
  249.     </xsd:complexType>
  250.  
  251.     <xsd:complexType name="dssDescriptorsType">
  252.         <xsd:sequence>
  253.             <xsd:element name="dssDescriptor" type="dsp:dssDescriptorType" minOccurs="0" maxOccurs="unbounded"/>
  254.         </xsd:sequence>
  255.     </xsd:complexType>
  256.  
  257.     <!-- Sorting options -->
  258.     <xsd:complexType name="sortOptionType">
  259.         <xsd:simpleContent>
  260.                 <xsd:extension base="xsd:string">
  261.                 <xsd:attribute name="direction" use="required">
  262.                     <xsd:simpleType>
  263.                         <xsd:restriction base="xsd:string">
  264.                             <xsd:enumeration value="asc"/>
  265.                             <xsd:enumeration value="desc"/>                        
  266.                         </xsd:restriction>
  267.                     </xsd:simpleType>
  268.                 </xsd:attribute>
  269.                 </xsd:extension>
  270.         </xsd:simpleContent>
  271.     </xsd:complexType>
  272.  
  273.     <xsd:complexType name="sortOptionsType">
  274.         <xsd:sequence>
  275.             <xsd:element name="sortOption" type="dsp:sortOptionType" minOccurs="0" maxOccurs="unbounded"/>
  276.         </xsd:sequence>
  277.     </xsd:complexType>
  278.  
  279.     <!-- Various types used in plan items  -->
  280.  
  281.     <xsd:simpleType name="planetEphemerisType">
  282.         <xsd:restriction base="xsd:string">
  283.             <xsd:enumeration value="Sun" />
  284.             <xsd:enumeration value="Mercury" />
  285.             <xsd:enumeration value="Venus" />
  286.             <xsd:enumeration value="Mars" />
  287.             <xsd:enumeration value="Jupiter" />
  288.             <xsd:enumeration value="Saturn" />
  289.             <xsd:enumeration value="Uranus" />
  290.             <xsd:enumeration value="Neptune" />
  291.             <xsd:enumeration value="Pluto" />
  292.             <xsd:enumeration value="Moon" />
  293.         </xsd:restriction>
  294.     </xsd:simpleType>
  295.  
  296.     <xsd:simpleType name="objectDesigType">
  297.         <xsd:restriction base="xsd:string">
  298.             <xsd:maxLength value="25"/>
  299.         </xsd:restriction>
  300.     </xsd:simpleType>
  301.  
  302.     <xsd:complexType name="planetDesigType">
  303.         <xsd:simpleContent>
  304.             <xsd:extension base="dsp:objectDesigType">
  305.                 <xsd:attribute name="ephem" type="dsp:planetEphemerisType" />
  306.             </xsd:extension>
  307.         </xsd:simpleContent>
  308.     </xsd:complexType>
  309.  
  310.     <xsd:complexType name="elementsType" abstract="true">
  311.         <xsd:sequence>
  312.             <xsd:element name="epochJde" type="xsd:decimal" />
  313.             <!-- T of passage thru perihelion -->
  314.             <xsd:element name="T0" type="xsd:decimal" />
  315.             <!-- eccentricity -->
  316.             <xsd:element name="e" type="xsd:decimal" />
  317.             <!-- argument of perihelion (to radians) -->
  318.             <xsd:element name="LonPeri" type="xsd:decimal" />
  319.             <!-- longitude of the ascending node (to radians) -->
  320.             <xsd:element name="LonNode" type="xsd:decimal" />
  321.             <!-- inclination to ecliptic (to radians) -->
  322.             <xsd:element name="Incl" type="xsd:decimal" />
  323.         </xsd:sequence>
  324.     </xsd:complexType>
  325.  
  326.     <xsd:complexType name="asteroidElementsType">
  327.         <xsd:complexContent>
  328.             <xsd:extension base="dsp:elementsType">
  329.                 <xsd:sequence>
  330.                     <!-- mean anomaly per day (to radians) -->
  331.                     <xsd:element name="M0" type="xsd:decimal" />
  332.                     <!-- semimajor axis in AU -->
  333.                     <xsd:element name="a" type="xsd:decimal" />
  334.                     <!-- mean motion per day (to radians) -->
  335.                     <xsd:element name="n" type="xsd:decimal" />
  336.                     <xsd:element name="H" type="xsd:decimal" />
  337.                     <xsd:element name="G" type="xsd:decimal" />
  338.                 </xsd:sequence>
  339.             </xsd:extension>
  340.         </xsd:complexContent>
  341.     </xsd:complexType>
  342.  
  343.     <xsd:complexType name="cometElementsType">
  344.         <xsd:complexContent>
  345.             <xsd:extension base="dsp:elementsType">
  346.                 <xsd:sequence>
  347.                     <!-- perihelion distance in AU -->
  348.                     <xsd:element name="q" type="xsd:decimal" />
  349.                     <xsd:element name="g" type="xsd:decimal" />
  350.                     <xsd:element name="k" type="xsd:decimal" />
  351.                 </xsd:sequence>
  352.             </xsd:extension>
  353.         </xsd:complexContent>
  354.     </xsd:complexType>
  355.  
  356.     <!-- ObjectType enumerates descriptive names of types of celestial objects -->
  357.     <xsd:simpleType name="objectType">
  358.         <xsd:restriction base="xsd:string">
  359.             <xsd:maxLength value="20"/>
  360.             <xsd:enumeration value="Galaxy"/>
  361.             <xsd:enumeration value="Unknown"/>
  362.             <xsd:enumeration value="Open Cluster"/>
  363.             <xsd:enumeration value="Globular Cluster"/>
  364.             <xsd:enumeration value="Planetary Nebula"/>
  365.             <xsd:enumeration value="Diffuse Nebula"/>
  366.             <xsd:enumeration value="Cluster/Nebulosity"/>
  367.             <xsd:enumeration value="Single Star"/>
  368.             <xsd:enumeration value="Double Star"/>
  369.             <xsd:enumeration value="Triple Star"/>
  370.             <xsd:enumeration value="Cluster of Galaxies"/>
  371.             <xsd:enumeration value="Dark Nebula"/>
  372.             <xsd:enumeration value="Quasar"/>
  373.             <xsd:enumeration value="Supernova Remnant"/>
  374.             <xsd:enumeration value="Carbon Star"/>
  375.             <xsd:enumeration value="Variable Star"/>
  376.             <xsd:enumeration value="Planet"/>
  377.             <xsd:enumeration value="Comet"/>
  378.             <xsd:enumeration value="Asteroid"/>
  379.         </xsd:restriction>
  380.     </xsd:simpleType>
  381.  
  382.     <!-- AngleType must be measured in decimal hours, degrees or radians -->
  383.     <!-- UOM = Unit of Measure and is required for AngleType -->
  384.     <xsd:simpleType name="angleUOM">
  385.         <xsd:restriction base="xsd:string">
  386.             <xsd:enumeration value="hours"/>
  387.             <xsd:enumeration value="degrees"/>
  388.             <xsd:enumeration value="arcminutes"/>
  389.             <xsd:enumeration value="arcseconds"/>
  390.             <xsd:enumeration value="radians"/>
  391.         </xsd:restriction>
  392.     </xsd:simpleType>
  393.     <xsd:complexType name="angleType">
  394.         <xsd:simpleContent>
  395.             <xsd:extension base="xsd:double">
  396.                 <xsd:attribute name="uom" type="dsp:angleUOM" use="required"/>
  397.             </xsd:extension>
  398.         </xsd:simpleContent>
  399.     </xsd:complexType>
  400.     <xsd:simpleType name="equinoxType">
  401.         <xsd:restriction base="xsd:string">
  402.             <xsd:enumeration value="unknown"/>
  403.             <xsd:enumeration value="now"/>
  404.             <xsd:enumeration value="J2000"/>
  405.             <xsd:enumeration value="J2050"/>
  406.         </xsd:restriction>
  407.     </xsd:simpleType>
  408.     <xsd:complexType name="equPosType">
  409.         <xsd:sequence>
  410.             <!-- 2000.0 is the most common -->
  411.             <xsd:element type="dsp:angleType" name="rightAscension"/>
  412.             <xsd:element type="dsp:angleType" name="declination"/>
  413.         </xsd:sequence>
  414.         <xsd:attribute type="dsp:equinoxType" name="equinox" use="required"/>
  415.     </xsd:complexType>
  416.     <xsd:complexType name="properMotionType">
  417.         <!-- Proper motion in milliarcseconds per year -->
  418.         <xsd:sequence>
  419.             <xsd:element type="xsd:integer" name="ra_mas"/>
  420.             <xsd:element type="xsd:integer" name="decl_mas"/>
  421.         </xsd:sequence>
  422.     </xsd:complexType>
  423.     <xsd:simpleType name="magPhotomType">
  424.         <xsd:restriction base="xsd:string">
  425.             <xsd:minLength value="1"/>
  426.             <xsd:maxLength value="2"/>
  427.         </xsd:restriction>
  428.     </xsd:simpleType>
  429.     <xsd:complexType name="magnitudeType">
  430.         <xsd:simpleContent>
  431.             <xsd:extension base="xsd:decimal">
  432.                 <xsd:attribute type="dsp:magPhotomType" name="magPhotom" use="optional"/>
  433.             </xsd:extension>
  434.         </xsd:simpleContent>
  435.     </xsd:complexType>
  436.     
  437.     <!-- Mean surface brightness from a catalog in magnitude per square arcsecond -->
  438.     <xsd:simpleType name="surfaceBrightnessType">
  439.         <xsd:restriction base="xsd:decimal">
  440.             <xsd:minExclusive value="0"/>
  441.         </xsd:restriction>
  442.     </xsd:simpleType>
  443.  
  444.     <!-- User defined text value. Limit to 100 characters. -->
  445.     <xsd:simpleType name="userTextType">
  446.         <xsd:restriction base="xsd:string" >
  447.             <xsd:maxLength value="100"/>
  448.         </xsd:restriction>
  449.     </xsd:simpleType>
  450.  
  451.     <!-- Double Star orbital elements type -->
  452.     <xsd:complexType name="doubleStarElementsType">
  453.         <xsd:sequence>
  454.             <!-- Period of orbital revolution in years -->
  455.             <xsd:element name="P" type="xsd:decimal" />
  456.             <!-- Semimjor axis of orbit in arcseconds -->
  457.             <xsd:element name="A" type="xsd:decimal" />
  458.             <!-- Inclination of orbit in degrees  -->
  459.             <xsd:element name="I" type="xsd:decimal" />
  460.             <!-- Position angle of the ascending node in degrees  -->
  461.             <xsd:element name="N" type="xsd:decimal" />
  462.             <!-- Time of periastron in years  -->
  463.             <xsd:element name="T" type="xsd:decimal" />
  464.             <!-- Eccentricity of orbit in degrees  -->
  465.             <xsd:element name="E" type="xsd:decimal" />
  466.             <!-- Longitude of periastron in degrees  -->
  467.             <xsd:element name="O" type="xsd:decimal" />
  468.             <!-- Grade of orbit as defined in the (Sixth) Catalog of Orbits of Visual Binary Stars -->
  469.             <xsd:element name="Grade" type="xsd:integer" />
  470.         </xsd:sequence>
  471.     </xsd:complexType>
  472.  
  473.     <!-- Double Star measurement -->
  474.     <xsd:complexType name="doubleStarMeasurementType"> 
  475.         <xsd:sequence>
  476.             <xsd:element name="year" type="xsd:nonNegativeInteger" minOccurs="0" />
  477.             <xsd:element name="separation" type="dsp:angleType" minOccurs="0" />
  478.             <xsd:element name="positionAngle" type="dsp:angleType" minOccurs="0" />
  479.         </xsd:sequence>
  480.     </xsd:complexType>
  481.  
  482.  
  483.     <!-- Plan item base type -->
  484.     <xsd:complexType name="planItemType" abstract="true">
  485.         <xsd:sequence>
  486.             <!-- Designation of object. Some names have special meanings: -->
  487.             <!-- Sun, Moon, Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto. -->
  488.             <xsd:element name="objectDesig">
  489.                 <xsd:simpleType>
  490.                     <xsd:restriction base="xsd:string">
  491.                         <xsd:maxLength value="40"/>
  492.                     </xsd:restriction>
  493.                 </xsd:simpleType>
  494.             </xsd:element>
  495.  
  496.             <!-- Computational model, MPC circular number, CDS catalog number, etc -->
  497.             <xsd:element name="objectSource" minOccurs="0">
  498.                 <xsd:simpleType>
  499.                     <xsd:restriction base="xsd:string">
  500.                         <xsd:maxLength value="100"/>
  501.                     </xsd:restriction>
  502.                 </xsd:simpleType>
  503.             </xsd:element>
  504.  
  505.             <!-- Dictates which ephemeris is used for calcs [ planet | comet | asteroid | dso | vs | ds ] -->
  506.             <xsd:element name="objectTypeCode" type="dsp:objectType" />
  507.  
  508.             <!-- Optional DSS image descriptor. Position may be provided at runtime. -->
  509.             <xsd:element name="dssDescriptorID" type="xsd:IDREF" minOccurs="0"/>
  510.  
  511.             <!-- Observed is optional. -->
  512.             <xsd:element name="observed" type="xsd:boolean" minOccurs="0"/>
  513.  
  514.             <!-- Optional element for a text value.  -->
  515.             <xsd:element name="userText" type="dsp:userTextType" minOccurs="0"/>
  516.  
  517.             <!-- Optional element for an integer value.  -->
  518.             <xsd:element name="userInteger" type="xsd:integer" minOccurs="0"/>
  519.  
  520.             <!-- Optional element for a double value.  -->
  521.             <xsd:element name="userDouble" type="xsd:decimal" minOccurs="0"/>
  522.  
  523.         </xsd:sequence>
  524.     </xsd:complexType>
  525.  
  526.     <xsd:complexType name="planetItemType">
  527.         <xsd:complexContent>
  528.             <xsd:extension base="dsp:planItemType">
  529.                 <xsd:sequence>
  530.                     <xsd:element name="ephemeris" type="dsp:planetEphemerisType" />
  531.                 </xsd:sequence>
  532.             </xsd:extension>
  533.         </xsd:complexContent>
  534.     </xsd:complexType>
  535.  
  536.     <xsd:complexType name="asteroidItemType">
  537.         <xsd:complexContent>
  538.             <xsd:extension base="dsp:planItemType">
  539.                 <xsd:sequence>
  540.                     <xsd:element name="elements" type="dsp:asteroidElementsType" minOccurs="0" />
  541.                 </xsd:sequence>
  542.             </xsd:extension>
  543.         </xsd:complexContent>
  544.     </xsd:complexType>
  545.  
  546.     <xsd:complexType name="cometItemType">
  547.         <xsd:complexContent>
  548.             <xsd:extension base="dsp:planItemType">
  549.                 <xsd:sequence>
  550.                     <xsd:element name="elements" type="dsp:cometElementsType" minOccurs="0" />
  551.                 </xsd:sequence>
  552.             </xsd:extension>
  553.         </xsd:complexContent>
  554.     </xsd:complexType>
  555.  
  556.     <xsd:complexType name="catalogItemType">
  557.         <xsd:complexContent>
  558.             <xsd:extension base="dsp:planItemType">
  559.                 <xsd:sequence>
  560.                     <!-- One or more other names; the first will always show in DSP -->
  561.                     <xsd:element name="commonName" minOccurs="0" maxOccurs="unbounded">
  562.                         <xsd:simpleType>
  563.                             <xsd:restriction base="xsd:string">
  564.                                 <xsd:maxLength value="25"/>
  565.                             </xsd:restriction>
  566.                         </xsd:simpleType>
  567.                     </xsd:element>
  568.  
  569.                     <!-- Equatorial coordinates of the center of the object -->
  570.                     <xsd:element name="position" type="dsp:equPosType" minOccurs="0"/>
  571.  
  572.                     <!-- Magnitude of the object -->
  573.                     <xsd:element name="primaryMag" type="dsp:magnitudeType" minOccurs="0"/>
  574.                 </xsd:sequence>
  575.             </xsd:extension>
  576.         </xsd:complexContent>
  577.     </xsd:complexType>
  578.  
  579.     <xsd:complexType name="dsoItemType">
  580.         <xsd:complexContent>
  581.             <xsd:extension base="dsp:catalogItemType">
  582.                 <xsd:sequence>
  583.                     <!-- Magnitude of the illuminating or central object -->
  584.                     <xsd:element name="secondaryMag" type="dsp:magnitudeType" minOccurs="0"/>
  585.  
  586.                     <!-- PrimarySize is the dimension of a symmetrical object OR the larger dimension of an asymmetrical object; typically the major axis of an ellipse -->
  587.                     <xsd:element name="primarySize" type="dsp:angleType" minOccurs="0"/>
  588.  
  589.                     <!-- SecondarySize is the smaller dimension of an asymmetrical object; typically the minor axis of an ellipse -->
  590.                     <xsd:element name="secondarySize" type="dsp:angleType" minOccurs="0"/>
  591.  
  592.                     <!-- Appropriate for extended objects only -->
  593.                     <xsd:element name="surfaceBrightness" type="dsp:surfaceBrightnessType" minOccurs="0"/>
  594.                 
  595.                     <!-- Appropriate for galaxies & nebulae -->
  596.                     <xsd:element name="positionAngle" type="dsp:angleType" minOccurs="0"/>
  597.                 
  598.                     <!-- Appropriate for galaxies -->
  599.                     <xsd:element name="inclinationAngle" type="dsp:angleType" minOccurs="0"/>
  600.  
  601.                 </xsd:sequence>
  602.             </xsd:extension>
  603.         </xsd:complexContent>
  604.     </xsd:complexType>
  605.  
  606.     <xsd:complexType name="stoItemType">
  607.         <xsd:complexContent>
  608.             <xsd:extension base="dsp:catalogItemType">
  609.                 <xsd:sequence>                
  610.                     <!-- Stellar spectral class -->
  611.                     <xsd:element name="spectralCode" type="dsp:spectralType" minOccurs="0"/>
  612.                     <!-- Proper motion in milliarcseconds per year -->
  613.                     <xsd:element name="properMotion" type="dsp:properMotionType" minOccurs="0"/>
  614.                 </xsd:sequence>
  615.             </xsd:extension>
  616.         </xsd:complexContent>
  617.     </xsd:complexType>
  618.  
  619.     <xsd:complexType name="stoDoubleItemType">
  620.         <xsd:complexContent>
  621.             <xsd:extension base="dsp:stoItemType">
  622.                 <xsd:sequence>
  623.                     <!-- Secondary magnitude is the dimmest for a double -->
  624.                     <xsd:element name="secondaryMag" type="dsp:magnitudeType" minOccurs="0"/>
  625.                     <!-- Secondary spectral class -->
  626.                     <xsd:element name="secondarySpectralCode" type="dsp:spectralType" minOccurs="0"/>
  627.                     <!-- Measurement -->
  628.                     <xsd:element name="doubleStarMeasurement" type="dsp:doubleStarMeasurementType" minOccurs="0" /> 
  629.                     <!-- Orbital Elements for some visual double stars -->
  630.                     <xsd:element name="doubleStarElements" type="dsp:doubleStarElementsType" minOccurs="0" /> 
  631.                 </xsd:sequence>
  632.             </xsd:extension>
  633.         </xsd:complexContent>
  634.     </xsd:complexType>
  635.  
  636.     <xsd:complexType name="stoVariableItemType">
  637.         <xsd:complexContent>
  638.             <xsd:extension base="dsp:stoItemType">
  639.                 <xsd:sequence>
  640.                     <!-- Secondary magnitude is the dimmest -->
  641.                     <xsd:element name="secondaryMag" type="dsp:magnitudeType" minOccurs="0"/>
  642.                     <!-- Type of variability as defined by GCVS -->
  643.                     <xsd:element name="variableTypeCode" type="xsd:string"/>
  644.                     <!-- Epoch of maximum light (minimum for eclipsing, ellipsoidal, RV Tau and RS CVn types) -->
  645.                     <xsd:element name="variableEpoch" type="xsd:decimal" minOccurs="0"/>
  646.                     <!-- Period of variability in days -->
  647.                     <xsd:element name="variablePeriod" type="xsd:decimal" minOccurs="0"/>
  648.                     <!-- Duration in % of period for eclipsing types, rise time for others -->
  649.                     <xsd:element name="variableDuration" type="xsd:nonNegativeInteger" minOccurs="0"/>
  650.                 </xsd:sequence>
  651.             </xsd:extension>
  652.         </xsd:complexContent>
  653.     </xsd:complexType>
  654.  
  655.     <!-- Document definition -->
  656.     <xsd:element name="ObservingPlan">
  657.         <xsd:complexType>
  658.             <xsd:sequence>
  659.                 <xsd:element name="planMetaData" type="dsp:planMetaDataType"/>
  660.                 <!-- Localization is optional -->
  661.                 <xsd:element name="planLocalization" type="dsp:planLocalizationType" minOccurs="0"/>
  662.                 <!-- Filters are optional -->
  663.                 <xsd:element name="planFilters" type="dsp:planFiltersType" minOccurs="0"/>
  664.                 <!-- Alerts are optional -->
  665.                 <xsd:element name="planAlerts" type="dsp:planAlertsType" minOccurs="0"/>
  666.                 <!-- DSS Descriptors are optional; they are referenced by ID in plan items -->
  667.                 <xsd:element name="dssDescriptors" type="dsp:dssDescriptorsType" minOccurs="0" />
  668.                 <!-- Sorting options are optional -->
  669.                 <xsd:element name="sortOptions" type="dsp:sortOptionsType" minOccurs="0" />
  670.                 <!-- Plan items -->
  671.                 <xsd:element name="planItem" type="dsp:planItemType" minOccurs="0" maxOccurs="unbounded"/>
  672.             </xsd:sequence>
  673.  
  674.             <!-- schemaVersion -->    
  675.             <xsd:attribute name="schemaVersion" type="xsd:string" use="required"/>
  676.             <!-- producer -->    
  677.             <xsd:attribute name="producer" type="xsd:string" use="optional"/>
  678.         </xsd:complexType>
  679.  
  680.         <!-- Link DSS descriptor collection item to plan item -->
  681.         <xsd:key name="dssKey">
  682.             <xsd:selector xpath="*/dssDescriptors/dssDescriptor"/>
  683.             <xsd:field xpath="@id"/>
  684.         </xsd:key>
  685.         <xsd:keyref name="dssRef" refer="dsp:dssKey">
  686.             <xsd:selector xpath="*/planItem/dssDescriptor"/>
  687.             <xsd:field xpath="@id"/>            
  688.         </xsd:keyref>
  689.     </xsd:element>
  690. </xsd:schema>
  691.  
  692.